/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.camachosanchez.bean;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.*;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;

/**
 *
 * @author Zully
 */
@Entity
@Table(name = "usuarios")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Usuarios.findAll", query = "SELECT u FROM Usuarios u"),
    @NamedQuery(name = "Usuarios.findById", query = "SELECT u FROM Usuarios u WHERE u.id = :id"),
    @NamedQuery(name = "Usuarios.findByNombre", query = "SELECT u FROM Usuarios u WHERE u.nombre = :nombre"),
    @NamedQuery(name = "Usuarios.findByApellido", query = "SELECT u FROM Usuarios u WHERE u.apellido = :apellido"),
    @NamedQuery(name = "Usuarios.findByNombreAcceso", query = "SELECT u FROM Usuarios u WHERE u.nombreAcceso = :nombreAcceso"),
    @NamedQuery(name = "Usuarios.findByClaveAcceso", query = "SELECT u FROM Usuarios u WHERE u.claveAcceso = :claveAcceso"),
    @NamedQuery(name = "Usuarios.findByFechaInsercionActualizacion", query = "SELECT u FROM Usuarios u WHERE u.fechaInsercionActualizacion = :fechaInsercionActualizacion"),
    @NamedQuery(name = "Usuarios.findByEstado", query = "SELECT u FROM Usuarios u WHERE u.estado = :estado")})
public class Usuarios implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "id")
    private Integer id;
    @Basic(optional = false)
    @Column(name = "nombre")
    private String nombre;
    @Basic(optional = false)
    @Column(name = "apellido")
    private String apellido;
    @Basic(optional = false)
    @Column(name = "nombre_acceso")
    private String nombreAcceso;
    @Basic(optional = false)
    @Lob
    @Column(name = "clave_acceso")
    private byte[] claveAcceso;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idUsuarios", fetch = FetchType.LAZY)
    private List<Egresos> egresosList;
    @Basic(optional = false)
    @Column(name = "fecha_insercion_actualizacion")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaInsercionActualizacion;
    @Basic(optional = false)
    @Column(name = "estado")
    private boolean estado;
    @Basic(optional = false)
    @Column(name = "rol")
    private short rol;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idUsuario", fetch = FetchType.LAZY)
    private List<ControlReencauche> controlReencaucheList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idUsuario", fetch = FetchType.LAZY)
    private List<Vehiculos> vehiculosList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idUsuarioSalida", fetch = FetchType.LAZY)
    private List<InspeccionEquipo> inspeccionEquipoList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idUsuarioEntrada", fetch = FetchType.LAZY)
    private List<InspeccionEquipo> inspeccionEquipoList1;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idUsuario", fetch = FetchType.LAZY)
    private List<Neumaticos> neumaticosList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idUsuario", fetch = FetchType.LAZY)
    private List<ComprobacionBandaRodamientoPresion> comprobacionBandaRodamientoPresionList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idUsuarios", fetch = FetchType.LAZY)
    private List<Alineaciones> alineacionesList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idUsuario", fetch = FetchType.LAZY)
    private List<MedicionComprobacion> medicionComprobacionList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idUsuario", fetch = FetchType.LAZY)
    private List<Pilotos> pilotosList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idUsuario", fetch = FetchType.LAZY)
    private List<ControlCambioNeumatico> controlCambioNeumaticoList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idUsuarios", fetch = FetchType.LAZY)
    private List<Despinches> despinchesList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idUsuario", fetch = FetchType.LAZY)
    private List<Baterias> bateriasList;
    
    public Usuarios() {
    }

    public Usuarios(Integer id) {
        this.id = id;
    }

    public Usuarios(Integer id, String nombre, String apellido, String nombreAcceso, byte[] claveAcceso, Date fechaInsercionActualizacion, boolean estado) {
        this.id = id;
        this.nombre = nombre;
        this.apellido = apellido;
        this.nombreAcceso = nombreAcceso;
        this.claveAcceso = claveAcceso;
        this.fechaInsercionActualizacion = fechaInsercionActualizacion;
        this.estado = estado;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getApellido() {
        return apellido;
    }

    public void setApellido(String apellido) {
        this.apellido = apellido;
    }

    public String getNombreAcceso() {
        return nombreAcceso;
    }

    public void setNombreAcceso(String nombreAcceso) {
        this.nombreAcceso = nombreAcceso;
    }

    public byte[] getClaveAcceso() {
        return claveAcceso;
    }

    public void setClaveAcceso(byte[] claveAcceso) {
        this.claveAcceso = claveAcceso;
    }
    
    public Date getFechaInsercionActualizacion() {
        return fechaInsercionActualizacion;
    }

    public void setFechaInsercionActualizacion(Date fechaInsercionActualizacion) {
        this.fechaInsercionActualizacion = fechaInsercionActualizacion;
    }

    public boolean getEstado() {
        return estado;
    }

    public void setEstado(boolean estado) {
        this.estado = estado;
    }

    public short getRol() {
        return rol;
    }

    public void setRol(short rol) {
        this.rol = rol;
    }

    @XmlTransient
    public List<Egresos> getEgresosList() {
        return egresosList;
    }

    public void setEgresosList(List<Egresos> egresosList) {
        this.egresosList = egresosList;
    }
    
    @XmlTransient
    public List<ControlReencauche> getControlReencaucheList() {
        return controlReencaucheList;
    }

    public void setControlReencaucheList(List<ControlReencauche> controlReencaucheList) {
        this.controlReencaucheList = controlReencaucheList;
    }

    @XmlTransient
    public List<Vehiculos> getVehiculosList() {
        return vehiculosList;
    }

    public void setVehiculosList(List<Vehiculos> vehiculosList) {
        this.vehiculosList = vehiculosList;
    }

    @XmlTransient
    public List<InspeccionEquipo> getInspeccionEquipoList() {
        return inspeccionEquipoList;
    }

    public void setInspeccionEquipoList(List<InspeccionEquipo> inspeccionEquipoList) {
        this.inspeccionEquipoList = inspeccionEquipoList;
    }

    @XmlTransient
    public List<InspeccionEquipo> getInspeccionEquipoList1() {
        return inspeccionEquipoList1;
    }

    public void setInspeccionEquipoList1(List<InspeccionEquipo> inspeccionEquipoList1) {
        this.inspeccionEquipoList1 = inspeccionEquipoList1;
    }

    @XmlTransient
    public List<Neumaticos> getNeumaticosList() {
        return neumaticosList;
    }

    public void setNeumaticosList(List<Neumaticos> neumaticosList) {
        this.neumaticosList = neumaticosList;
    }

    @XmlTransient
    public List<ComprobacionBandaRodamientoPresion> getComprobacionBandaRodamientoPresionList() {
        return comprobacionBandaRodamientoPresionList;
    }

    public void setComprobacionBandaRodamientoPresionList(List<ComprobacionBandaRodamientoPresion> comprobacionBandaRodamientoPresionList) {
        this.comprobacionBandaRodamientoPresionList = comprobacionBandaRodamientoPresionList;
    }

    @XmlTransient
    public List<Alineaciones> getAlineacionesList() {
        return alineacionesList;
    }

    public void setAlineacionesList(List<Alineaciones> alineacionesList) {
        this.alineacionesList = alineacionesList;
    }

    @XmlTransient
    public List<MedicionComprobacion> getMedicionComprobacionList() {
        return medicionComprobacionList;
    }

    public void setMedicionComprobacionList(List<MedicionComprobacion> medicionComprobacionList) {
        this.medicionComprobacionList = medicionComprobacionList;
    }

    @XmlTransient
    public List<Pilotos> getPilotosList() {
        return pilotosList;
    }

    public void setPilotosList(List<Pilotos> pilotosList) {
        this.pilotosList = pilotosList;
    }

    @XmlTransient
    public List<ControlCambioNeumatico> getControlCambioNeumaticoList() {
        return controlCambioNeumaticoList;
    }

    public void setControlCambioNeumaticoList(List<ControlCambioNeumatico> controlCambioNeumaticoList) {
        this.controlCambioNeumaticoList = controlCambioNeumaticoList;
    }

    @XmlTransient
    public List<Despinches> getDespinchesList() {
        return despinchesList;
    }

    public void setDespinchesList(List<Despinches> despinchesList) {
        this.despinchesList = despinchesList;
    }

    @XmlTransient
    public List<Baterias> getBateriasList() {
        return bateriasList;
    }

    public void setBateriasList(List<Baterias> bateriasList) {
        this.bateriasList = bateriasList;
    }
    
    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Usuarios)) {
            return false;
        }
        Usuarios other = (Usuarios) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return nombre;
    }
    
}
